package com.learn.entity.system;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 系统操作人员实体类
 *
 * @author yaoqihui
 * @version 2022/10/24
 * @see [相关类/方法]
 */
@Data
@Accessors (chain = true)
@TableName ("sys_operator")
public class SysOperator
{

	/**
	 * id
	 */
	@TableId (type = IdType.ASSIGN_ID)
	private String id;

	/**
	 * 登录账户
	 */
	@TableField ("login_account")
	private String loginAccount;
	/**
	 * 登录账户类型
	 */
	@TableField ("login_type")
	private String loginType;
	/**
	 * 账户生效日期
	 */
	@TableField ("start_time")
	private LocalDateTime startTime;
	/**
	 * 账户失效日期
	 */
	@TableField ("expire_time")
	private LocalDateTime expireTime;
	/**
	 * 登录密码
	 */
	private String password;
	/**
	 * 是否是临时密码
	 * true：是
	 * false：否
	 */
	@TableField ("pwd_temp_flag")
	private Boolean pwdTempFlag;
	/**
	 * 密码失效期
	 */
	@TableField ("pwd_expire_time")
	private LocalDateTime pwdExpireTime;

	/**
	 * 首次登录成功的时间
	 */
	@TableField ("login_success_first_time")
	private LocalDateTime loginSuccessFirstTime;

	/**
	 * 最后一次登陆时间
	 */
	@TableField ("login_success_last_time")
	private LocalDateTime loginSuccessLastTime;

	/**
	 * 最后一次登陆失败时间
	 */
	@TableField ("login_fail_last_time")
	private LocalDateTime loginFailLastTime;

	/**
	 * 连续登录失败次数
	 */
	@TableField ("login_fail_times")
	private Long loginFailTimes;

	/**
	 * 连续登录失败的锁定状态
	 */
	@TableField ("login_lock_status")
	private Boolean loginLockStatus;

	/**
	 * 连续登录失败X次后锁定的到期时间
	 * UTC时间
	 */
	@TableField ("login_lock_time")
	private LocalDateTime loginLockTime;

	/**
	 * 是否已经做实名认证
	 */
	@TableField ("identity_verifiction")
	private Integer identityVerifiction;

	/**
	 * 真实姓名
	 */
	@TableField ("real_name")
	private String realName;

	/**
	 * 证件类型
	 */
	@TableField ("identity_type")
	private String identityType;

	/**
	 * 证件Id
	 */
	@TableField ("identity_id")
	private String identityId;

	/**
	 * 性别
	 */
	private String gender;

	/**
	 * 生日
	 */
	private String dob;

	/**
	 * 区域
	 */
	private String area;

	/**
	 * 手机号码
	 */
	@TableField ("contact_phone")
	private String contactPhone;

	/**
	 * 邮箱
	 */
	@TableField ("contact_email")
	private String contactEmail;

	/**
	 * 昵称
	 */
	@TableField ("profile_nick_name")
	private String profileNickName;

	/**
	 * 头像图片链接
	 */
	@TableField ("profile_avatar")
	private String profileAvatar;

	/**
	 * 个性签名
	 */
	@TableField ("profile_signature")
	private String profileSignature;

	/**
	 * 创建时间
	 */
	@TableField (value = "create_time", fill = FieldFill.INSERT)
	private LocalDateTime createTime;

	/**
	 * 状态
	 */
	private String status;

	/**
	 * 开始时间
	 */
	@TableField (value = "status_time")
	private LocalDateTime statusTime;

	/**
	 * 修改时间
	 */
	@TableField (value = "last_modify_time", fill = FieldFill.INSERT_UPDATE)
	private LocalDateTime lastModifyTime;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 是否有待审核的角色变更
	 */
	@TableField ("review_role_update")
	private Integer reviewRoleUpdate;

	/**
	 * 工作流id
	 */
	@TableField ("review_process_id")
	private String reviewProcessId;

	/**
	 * 是否接收系统短信通知
	 */
	@TableField ("receive_message")
	private Boolean receiveMessage;

	/**
	 * 租户id
	 */
	@TableField ("tenant_id")
	private String tenantId;

	/**
	 * 密码状态
	 */
	@TableField ("warning_flag")
	private String warningFlag;
}
